﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sparrow.Web.Router
{
    public interface IWebRouterProvider
    {
        bool Add(WebRouter router);
        bool Remove(WebRouter router);
        bool Update(WebRouter router);

        //bool Add(Action action);
        //bool Remove(Action action);
        //bool Update(Action action);


        IQueryable<WebRouter> Routers();

        IQueryable<WebRouter> RootRouters();

        IQueryable<JumpableWebRouter> JumpableRouters(WebRouter router);

        IQueryable<WebRouterModule> RouterModules(WebRouter router);

        IQueryable<WebRouter> Routers(WebRouterModule routerModule);

        WebRouter ParentRouter(WebRouter router);

        bool AddRouterModule(WebRouter webRouter, WebRouterModule routerModule);

        bool RemoveRouterModule(WebRouter webRouter, WebRouterModule routerModule);

        bool Add(WebRouter router, JumpableWebRouter jumpableRouter);

        bool Remove(WebRouter router, JumpableWebRouter jumpableRouter);

        IQueryable<WebRouter> ChildRouters(WebRouter webRouter);
    }
}
